package com.edu.dao;

import cn.hutool.db.ds.druid.DruidDSFactory;
import com.edu.util.DbUtilHikari;
import com.mysql.cj.xdevapi.PreparableStatement;
import cn.hutool.crypto.SecureUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * 对用户表的操作，包括：注册用户、删除用户、查询用户、修改用户
 *
 * @author 李旺

 * @version 1.0
 */
public class UserDao {
    /**
     * 用户的注册
     *
     * @param uname 用户名
     * @param upsw  密码
     * @return 注册成功返回1 注册失败返回0
     */
    public int insertUser(String uname, String upsw) {
        //1. 声明一些变量备用
        //代表数据库的连接
        Connection conn = null;
        //预编译对象，用pstmt执行SQL语句
        PreparedStatement pstmt = null;
        //注册成功与否的标志：如果是0注册失败 如果是1注册成功
        int flag = 0;

        //2.获取连接
        conn = DbUtilHikari.getConnection();

        //3.定义并准备SQL语句
        String sql = "INSERT INTO users(username,userpsw) VALUES(?,?)";
        try {
            pstmt = conn.prepareStatement(sql);

            //4.给?赋值
            pstmt.setString(1, uname);
            pstmt.setString(2, SecureUtil.md5(upsw));

            //5.执行SQL语句
            flag = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //6.关闭数据库资源
            DbUtilHikari.close(pstmt, conn);
        }
        return flag;
    }
}